{{tag>Karmic Lucid cao mécanique}}
----

====== HeeksCAD ======

{{applications:heekscad_lucid_01.png?700}}

**HeeksCAD** est un logiciel de [[:CAO]] sous licence [[wpfr>Licence_BSD|BSD]] permettant la modélisation de pièces en 3D. Il est orienté vers le génie mécanique et la fabrication. Il possède une architecture modulaire permettant de lui ajouter des greffons tels [[http://code.google.com/p/heekscnc/|HeeksCNC]], [[http://code.google.com/p/heeksart/|HeeksArt]] et [[http://code.google.com/p/heekspython/|HeeksPython]]. Il vise à offrir éventuellement des fonctionnalités semblables à des logiciels propriétaires tels que CATIA, SolidWorks, Pro|Engineer, Autodesk Inventor ou Solid Edge.

Certaines de ses particularités:

   * la modélisation de solides est basée sur [[:OpenCascade]], et permet la création de solides par formes primitives ou par extrusion, révolution ou lissage à partir d'esquisses, les opérations booléennes, les chanfreins et les congés;
   * il exporte aux formats standards STEP, IGES, STL et DXF, et permet l'importation du DXF.
   * un solveur de contraintes géométriques permet de créer des dessins précis à partir d'esquisses rapides.

À noter que ce logiciel **est toujours en développement**, il ne doit donc pas être vu comme une solution à utiliser en contexte professionnel. Cependant, il s'agit d'un logiciel intéressant à tester, ou peut-être même suffira-t-il pour un usage personnel.

===== Pré-requis =====

  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Disposer d'au moins 500 Mio d'espace disque, dont environ 300 Mio dans le Dossier personnel.
  * Disposer d'une carte graphique supportant l'[[:accélération graphique]] (ATI, Intel ou Nvidia) FIXME //(à confirmer)//

===== Installation manuelle =====

Il n'y a pas de paquet d'installation disponible. Il faut donc [[:tutoriel/compilation|compiler les sources]] depuis le site du projet. Si la procédure peut sembler intimidante, elle est relativement simple à accomplir si le [[:terminal]] ne vous fait pas peur.

==== Installer les dépendances ====

Il faut d'abord installer les bibliothèques nécessaires à la compilation, ainsi que les bibliothèques utilisées par le logiciel (notamment OpenCASCADE et wxWidgets). 

Dans un [[:terminal]], copiez-collez la ligne suivante:

  sudo apt-get install -y subversion libwxbase2.8-dev g++ build-essential libopencascade-dev libwxgtk2.8-dev libgtkglext1-dev python-dev cmake libboost-python-dev

Cette commande exige la saisie de votre mot de passe. L'installation pourrait prendre plusieurs minutes.

<note tip>L'option **-y** dans la commande ci-haut permet de répondre oui par avance aux demandes de confirmations.</note> 

==== Télécharger les sources ===

La commande suivante télécharge les sources du logiciel dans un dossier **HeeksCAD** sous votre Dossier personnel:

  cd ~
  svn checkout http://heekscad.googlecode.com/svn/trunk/ HeeksCAD

==== Compilation ====

Il faut maintenant changer de répertoire, puis exécuter la compilation et créer les liens dans les dossiers système:

  cd ~/HeeksCAD/src
  make clean
  make
  sudo make install

<note tip>La commande **make clean** sert à nettoyer le dossier avant de compiler, donc de commencer à partir d'un état vierge et de ne pas avoir des problèmes suite à des restes d une compilation précédente. Il est **normal** qu'elle génère des erreurs lors d'une première installation. Elle n'est donc en théorie pas requise à la toute première installation, mais devrait être utilisée lorsque vous faites une mise à jour à partir des sources. </note>

==== Configuration ====

Le logiciel est maintenant installé; toutefois, en raison d'une mauvaise configuration des sources, des liens vers l'exécutable et le raccourci-lanceur doivent être créés:

  sudo ln -s /usr/local/bin/HeeksCAD /usr/bin/HeeksCAD
  sudo ln -s /usr/local/share/heekscad/ /usr/share/heekscad

===== Installation par script automatisé =====

On peut reprendre les commandes précédentes et en faire un [[:tutoriel/script_shell|script]] automatisé.

Copier-coller dans un [[:editeur_de_texte|éditeur de texte]] le texte suivant:

<code bash>#!/bin/sh
# heekscad-install.sh -- Downloads, builds and installs HeeksCAD from svn

BUILDPATH=~             # Location of HeeksCAD build dir
INSTALLPATH=/usr/local  # Location to install HeeksCAD
BUILDPREREQS="subversion libwxbase2.8-dev \
  build-essential libopencascade-dev libwxgtk2.8-dev \
  libgtkglext1-dev python-dev cmake libboost-python-dev"

# Install build prerequisites
sudo apt-get install -y $BUILDPREREQS

cd $BUILDPATH
if [ -d HeeksCAD ]; then
  cd HeeksCAD
  svn update
else
  svn checkout http://heekscad.googlecode.com/svn/trunk/ HeeksCAD
fi
cd ${BUILDPATH}/HeeksCAD/src
make
sudo make install

# Make menu entry find the binary
sudo ln -s ${INSTALLPATH}/bin/HeeksCAD /usr/bin/HeeksCAD
# Make HeeksCAD find the program icons
sudo ln -s ${INSTALLPATH}/share/heekscad/ /usr/share/heekscad</code>

Enregistrez-le dans votre Dossier personnel, puis lancez-le:

=== Lancer le script en terminal ===

Ouvrez un [[:terminal]] et saisissez la commande suivante :

  sh nom_du_script

<note tip>N'utilisez pas sudo, puisqu'alors le dossier HeeksCAD créé dans le Dossier personnel aura «root» comme propriétaire et groupe. </note>

=== Lancer le script par méthode graphique ===

  * Faites un clic droit sur le script, puis sélectionnez //Propriétés//; sous l'onglet //Permissions//, cochez //Autoriser l'exécution du fichier comme un programme//. Fermez la fenêtre.
  * Faites un double-clic sur le script, puis dans la fenêtre, cliquez sur //Lancer dans un terminal//.

<note tip>Soyez patient, le processus peut prendre plusieurs minutes (au total environ 15 minutes sur un PC avec processeur à double cœur).</note>

===== Utilisation=====

Lancez l'application depuis le menu //Applications -> Graphisme -> HeeksCAD// ou //via// la [[:commande_shell|commande]] suivante :

  HeeksCAD

<note tip>Portez attention à la casse, sinon la commande ne sera pas reconnue!</note>

=== Astuces ===

  * On peut créer des **formes primitives** (cube, cylindre, cône et sphère) par le menu //Objet 3D// ou la barre d'outils du même nom. Une fois créé, le solide peut être modifié (déplacement, redimensionnement, étirement, rotation) dans la fenêtre graphique à l'aide de la souris en sélectionnant les //icônes de manipulation//. Les dimensions peuvent aussi être saisies au clavier dans la fenêtre //Propriétés// du panneau latéral.
{{ applications:heekscad_lucid_04.png }}
  * Pour réaliser une **extrusion**, il faut d'abord créer une esquisse avec les outils de géométrie. Il faut ensuite terminer l'esquisse, puis la sélectionner avant d'activer la fonction //Extruder une esquisse//. À noter que celle-ci n'est possible que dans l'axe Z du système de coordonnées. Il est possible de créer un nouveau système de coordonnées dont l'orientation de l'axe Z sera différente du système de coordonnées global. On saisis une valeur de hauteur et on termine la fonction en cliquant sur le bouton //Accepter valeur et continuer// dans la fenêtre //Saisir// du panneau latéral.
  * La **révolution** se fait par la même méthode que l'extrusion. L'axe de rotation se trouve sur l'axe Z. Le profil n'a pas besoin de toucher à l'axe de rotation.
{{ applications:heekscad_lucid_06.png?248 }}
  * Le **lissage** n'est pas contraint par l'axe Z. Il nécessite 2 esquisses. Les deux esquisses doivent avoir le même nombre d'éléments, mais n'ont pas besoin d'être sur des plans parallèles. Par exemple, le lissage d'un rectangle à un losange est accepté, mais pas celui d'un rectangle à un cercle.
{{ applications:heekscad_lucid_05.png?248 }}

===== Greffons =====
L'architecture modulaire de **HeeksCAD** permet l'installation de **greffons** qui lui ajoutent des fonctionnalités.

==== HeeksCNC ====
**HeeksCNC** permet de créer des parcours d'outil et de générer un code de programmation lisible par les [[wpfr>Machine-outil_%C3%A0_commande_num%C3%A9rique|machines-outil à commande numérique]]. Pour plus de détails, consultez [[http://code.google.com/p/heekscnc/|la page de projet du greffon HeeksCNC]] **(en)**.

=== Installation de HeeksCNC ===
Saisir les commandes suivantes dans un [[:terminal]]:
  #Obtenir les fichiers HeeksCNC des sources SVN, compiler, et installer
  cd ~/HeeksCAD/
  svn checkout http://heekscnc.googlecode.com/svn/trunk/ HeeksCNC
  cd ~/HeeksCAD/HeeksCNC/src
  make clean
  make
  sudo make install

=== Installer les bibliothèques associées ===
HeeksCNC utilise certaines bibliothèques pour effectuer différentes opérations. Installez-les toutes, ou seulement celles que vous comptez utiliser.

== Kurve ==
kurve.so est requis pour les opérations de profils. Le code est téléchargé en même temps que HeeksCNC, mais il nécessite une compilation séparée.

  #Compiler et installer Kurve
  cd ~/HeeksCAD/HeeksCNC/kurve
  make clean
  make
  sudo make install

== libarea ==

area.so est requis pour les //pocket operations//. FIXME

  #Obtenir les fichiers libarea des sources SVN, compiler, et installer
  cd ~/HeeksCAD/HeeksCNC/
  svn checkout http://libarea.googlecode.com/svn/trunk/ libarea
  cd ~/HeeksCAD/HeeksCNC/libarea/
  make clean
  make
  sudo make install

== libactp ==

actp.so est requis pour les opérations de dégrossissage adaptatif.

  #Obtenir les fichiers libactp (dégrossissage adaptatif) des sources SVN, compiler, et installer
  cd ~/HeeksCAD/HeeksCNC/
  svn checkout http://libactp.googlecode.com/svn/trunk/ libactp
  cd ~/HeeksCAD/HeeksCNC/libactp/PythonLib
  make clean
  make
  sudo make install

== opencamlib ==

opencamlib remplace pycam. Il est requis pour les opérations en zigzag.

  #Obtenir les fichiers opencamlib files des sources SVN, compiler, et installer
  cd ~/HeeksCAD/HeeksCNC/
  svn checkout http://opencamlib.googlecode.com/svn/trunk/ opencamlib
  cd ~/HeeksCAD/HeeksCNC/opencamlib/src
  make clean
  cmake .
  make
  sudo make install

=== Activation du greffon HeeksCNC ===

  * Lancer HeeksCAD
  * Ouvrir le menu //Fichier -> Greffons//
  * Dans la boîte de dialogue, cliquer sur le bouton //Nouveau//
  * Dans la boîte de dialogue //Ajouter un nouveau greffon//, saisir **HeeksCNC** pour le nom, puis dans //Chemin des fichiers//, cliquer sur le bouton « ... »
  * Localiser le fichier libheekscnc.so.0.5.1 sous /usr/local/lib/heekscnc/, cliquer sur le bouton OK, quittez puis relancez HeeksCAD.

Un menu **Usinage** devrait maintenant être ajouté, ainsi qu'une barre d'outils avec les icônes d'usinage.

=== Utilisation de HeeksCNC ===
Des instructions sont disponibles sur le wiki du site officiel: [[http://code.google.com/p/heekscnc/wiki/HowToUse|How to use different operations in HeeksCNC]] **(en anglais)**

==== HeeksArt ====
**HeeksArt** permet la création de surfaces complexes de type [[wpfr>Mesh_(Objet)|Mesh]] au moyen de courbes de Bézier. Pour plus de détails, consultez [[http://code.google.com/p/heeksart/|la page de projet du greffon HeeksArt]] **(en)**

==== HeeksPython ====
**HeeksPython** ajoute une console en langage Python. Pour plus de détails, consultez [[http://code.google.com/p/heekspython/|la page de projet du greffon HeeksPython]] **(en)**

===== Problèmes connus =====

==== Interface en français ====

Le logiciel s'installe par défaut en anglais. Il faut ici [[:compilation|compiler]] le fichier de traduction fourni. Cependant, en raison d'un oubli des développeurs, le fichier de compilation ne contient pas l'instruction nécessaire à l'installation du français. Il faut donc le modifier au préalable.
<note important>N'oubliez pas de fermer HeeksCAD avant de faire cette manipulation!</note>
Ouvrez dans un [[:editeur_de_texte|éditeur de texte]] le fichier **Makefile** qui se trouve dans /HeeksCAD/translations. Vous pouvez le faire en méthode graphique par votre [[:gestionnaire de fichiers]], ou par le [[:terminal]]:

  gedit ~/HeeksCAD/translations/Makefile

Ensuite, effacez son contenu pour le remplacer par le texte suivant:
<code make>
PREFIX=/usr/local
DATADIR=$(PREFIX)/share
LOCALEDIR=$(DATADIR)/locale
mkdir_p= mkdir -p
MSGFMT=msgfmt

OBJECTS=fr/HeeksCAD.mo
all: ${OBJECTS}

fr/HeeksCAD.mo: fr/HeeksCAD.po
	$(MSGFMT) -o $@ $?

clean:
	-rm ${OBJECTS}

install:
	$(mkdir_p) "$(DESTDIR)$(LOCALEDIR)/fr/LC_MESSAGES"
	cp fr/HeeksCAD.mo "$(DESTDIR)$(LOCALEDIR)/fr/LC_MESSAGES/"

uninstall:
	-rm "$(DESTDIR)$(LOCALEDIR)/*/LC_MESSAGES/HeeksCAD.mo"
</code>

Sauvegardez le document, puis fermez-le.

Ensuite, il reste à l'exécuter à l'aide de la commande make dans le terminal:
  cd ~/HeeksCAD/translations
  make clean
  make
  sudo make install

Voilà, au prochain lancement de l'application, l'interface de HeeksCAD sera en français.

==== Boutons manquants sous Ubuntu 10.04 et thème Ambiance ====

Sous Ubuntu 10.04 avec le thème par défaut Ambiance (et possiblement d'autres thèmes), la dernière icône de chacune des barre d'outils n'est pas affichée:

{{applications:heekscad_lucid_02.png?650}}

On peut régler le problème de la façon suivante:
  * Aller dans le menu //Fenêtres -> Barre d'outils à gauche//; ceci a pour effet d'aligner toutes les barres d'outils à la gauche de la fenêtre, et de les afficher correctement; 
{{applications:heekscad_lucid_03.png?375}}
  * Replacer les barres d'outils vers le haut de la fenêtre à l'aide de la souris.

//(Source: [[http://code.google.com/p/heekscad/issues/detail?id=270|Issue 270]])//

==== Fonctions inopérantes ====

Il est possible que certaines fonctions soient inopérantes (outil extrusion, importation STEP, sauvegarde) après l'installation à l'aide du script automatisé. Dans ce cas, essayez de réinstaller manuellement en suivant les étapes [[heekscad#Télécharger les sources]] et [[heekscad#Compilation]]. Il n'est pas nécessaire de répéter l'étape de configuration.

===== Mise à jour =====

Le logiciel HeeksCAD est en développement constant. L'équipe de développeurs en modifient le code presque à chaque semaine, pour corriger des bogues ou ajouter des fonctionnalités. Il peut donc être intéressant de mettre à jour le logiciel.

Cette mise à jour se fait simplement en répétant les étapes de l'installation manuelle, [[heekscad#Télécharger les sources]] et [[heekscad#Compilation]].
===== Désinstallation =====

Pour supprimer cette application, dans le répertoire des sources faites un "make uninstall"
<code bash>
cd ~/HeeksCAD/src
sudo make uninstall
</code>

Vous pouvez maintenant supprimer le dossier **HeeksCAD** qui se trouve dans le Dossier personnel.

On peut également [[:tutoriel/comment_supprimer_un_paquet|supprimer les bibliothèques]] qui ne sont plus utiles. Dans un [[:terminal]]:
<code bash>
sudo apt-get remove subversion libwxbase2.8-dev build-essential libopencascade-dev libwxgtk2.8-dev libgtkglext1-dev python-dev cmake libboost-python-dev
</code>

Attention ! ces paquets sont peut-être utile à d'autres applications !

===== Voir aussi =====

  * **(en)** [[http://code.google.com/p/heekscad/|Site officiel du projet]]
  * **(en)** [[http://groups.google.com/group/heekscad-users|Groupe de discussion des utilisateurs de HeeksCAD]]
  * **(fr)** [[http://www.linuxgraphic.org/forums/viewforum.php?f=41|Didacticiels et forum sur LinuxGrapic.org]]
  * [[:FreeCAD]], //un logiciel similaire//
  * //Basé sur [[http://code.google.com/p/heekscad/wiki/UbuntuInstallation|« How to build and install HeeksCAD »]] du site officiel.//


----
//Contributeur principal : [[:utilisateurs:Gemnoc]].//